﻿using Learun.Util;
using System.Collections.Generic;

namespace Learun.Application.TwoDevelopment.ZZDT_EC
{
    /// <summary>
    /// 版 本 PIT-ADMS V7.0.3 敏捷开发框架
    /// Copyright (c) 2013-2018 Hexagon PPM
    /// 创 建：超级管理员
    /// 日 期：2022-02-23 11:30
    /// 描 述：属性表
    /// </summary>
    public interface ec_propertyIBLL
    {
        #region 获取数据
        /// <summary>
        /// 获取页面显示列表数据
        /// <summary>
        /// <param name="queryJson">查询参数</param>
        /// <returns></returns>
        IEnumerable<ec_propertyEntity> GetList(string queryJson, string engineDataID = "", string caseID = "", Pagination pagination = null);
        /// <summary>
        /// 获取实体数据
        /// <param name="keyValue">主键</param>
        /// <summary>
        /// <returns></returns>
        ec_propertyEntity GetEntity(string keyValue, string ProjectId);
        /// <summary>
        /// 获取左侧树形数据
        /// <summary>
        ///<param name="ProjectId">项目ID</param>
        /// <returns></returns>
        List<TreeModel> GetTree(string ProjectId);
        /// <summary>
        /// 获取属性树形数据（第一级为属性组，第二级为属性）
        /// <summary>
        ///<param name="ProjectId">项目ID</param>
        /// <returns></returns>
        List<TreeModel> GetPropTreeData(string ProjectId, bool isShowCheck);

        /// <summary>
        /// 命名规则里用到
        /// </summary>
        /// <param name="ProjectId"></param>
        /// <param name="ObjectTypeId"></param>
        /// <param name="isShowCheck"></param>
        /// <returns></returns>
        List<TreeModel> GetPropTreeDataByType(string ProjectId, string ObjectTypeId, bool isShowCheck);
        #endregion

        #region 提交数据

        /// <summary>
        /// 删除实体数据
        /// <param name="keyValue">主键</param>
        /// <summary>
        /// <returns></returns>
        void DeleteEntity(string keyValue, string ProjectId);
        /// <summary>
        /// 保存实体数据（新增、修改）
        /// <param name="keyValue">主键</param>
        /// <summary>
        /// <returns></returns>
        void SaveEntity(string keyValue, ec_propertyEntity entity, string ProjectId);
        #endregion

    }
}
